/**
 * @author: zhiqiang
 * @version: 1.0
 * @date: 2022/3/17
 * @description:
 */
package com.lzq.builder.improved;

public class Client {
    public static void main(String[] args) {
        /**
         * 建造者模式的优点：
         *  1.对于客户端来说，不需要知道和关心产品创建的细节，只需要知道需要哪类产品就可以通过相同的方式来获得对应的产品，
         *  2.对于提供方来说，代码进行了封装；并且后续需要添加类似的产品，只需要新建Builder就可以了，方便了后续的扩展，提高了可扩展性；
         *  3.指挥者规定了生产的步骤，不会出现遗漏得情况
         *  4.产品和创建产品的过程实现了解耦。
         *  建造者模式适用于创建一些复杂的对象：这些对象内部构建间的建造顺序通常是稳定的，但对象内部的构建通常面临着复杂的变化
         */
        RComputerBuilder rComputerBuilder = new RComputerBuilder();
        new ComputerDirector(rComputerBuilder);
        rComputerBuilder.getComputer();

    }
}
